package com.ruoyi.system.domain;

import java.util.Date;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 客户对象 customers
 * 
 * @author ruoyi
 */
@Data
public class Customer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 客户ID */
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 客户类型 */
    @Excel(name = "客户类型")
    private String customerType;

    /** 客户等级 */
    @Excel(name = "客户等级")
    private String customerLevel;

    /** 电话 */
    @Excel(name = "电话")
    private String phone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractAmount;

    /** 已收款金额 */
    @Excel(name = "已收款金额")
    private BigDecimal collectedAmount;

    /** 未收款金额 */
    @Excel(name = "未收款金额")
    private BigDecimal notCollectedAmount;

    /** 已送货订单数量 */
    @Excel(name = "已送货订单数量")
    private Integer deliveredOrderCount;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /** 负责人用户ID */
    private Long userId;

    /** 负责人用户名 */
    @Excel(name = "负责人")
    private String userName;


    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }

    public void setCustomerType(String customerType) 
    {
        this.customerType = customerType;
    }

    public String getCustomerType() 
    {
        return customerType;
    }

    public void setCustomerLevel(String customerLevel) 
    {
        this.customerLevel = customerLevel;
    }

    public String getCustomerLevel() 
    {
        return customerLevel;
    }

    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }

    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setContractAmount(BigDecimal contractAmount) 
    {
        this.contractAmount = contractAmount;
    }

    public BigDecimal getContractAmount() 
    {
        return contractAmount;
    }

    public void setCollectedAmount(BigDecimal collectedAmount) 
    {
        this.collectedAmount = collectedAmount;
    }

    public BigDecimal getCollectedAmount() 
    {
        return collectedAmount;
    }

    public void setNotCollectedAmount(BigDecimal notCollectedAmount) 
    {
        this.notCollectedAmount = notCollectedAmount;
    }

    public BigDecimal getNotCollectedAmount() 
    {
        return notCollectedAmount;
    }

    public void setDeliveredOrderCount(Integer deliveredOrderCount) 
    {
        this.deliveredOrderCount = deliveredOrderCount;
    }

    public Integer getDeliveredOrderCount() 
    {
        return deliveredOrderCount;
    }

    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("customerId", getCustomerId())
            .append("customerName", getCustomerName())
            .append("contactPerson", getContactPerson())
            .append("customerType", getCustomerType())
            .append("customerLevel", getCustomerLevel())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("address", getAddress())
            .append("contractAmount", getContractAmount())
            .append("collectedAmount", getCollectedAmount())
            .append("notCollectedAmount", getNotCollectedAmount())
            .append("deliveredOrderCount", getDeliveredOrderCount())
            .append("createdAt", getCreatedAt())
            .toString();
    }
} 